/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.jfonia.notation;

import org.jfonia.connect5.basics.BasicValueNode;
import org.jfonia.connect5.basics.MutableValueNode;

/**
 *
 * @author Rik Bauwens
 */
public class Note extends NoteOrRest
{
        private MutableValueNode<Integer> noteHeadNode;
        private MutableValueNode<Integer> stemNode;
        private MutableValueNode<Integer> flagsNode;

        public Note(int noteHead, int stem, int flags, int dots)
        {
                super(dots);
                noteHeadNode = new BasicValueNode<Integer>(noteHead);
                stemNode = new BasicValueNode<Integer>(stem);
                flagsNode = new BasicValueNode<Integer>(flags);
        }

        public int getNoteHead()
        {
                return noteHeadNode.getValue();
        }

        public int getStem()
        {
                return stemNode.getValue();
        }

        public int getFlags()
        {
                return flagsNode.getValue();
        }

        public void setNoteHead(int noteHead)
        {
                noteHeadNode.setValue(noteHead);
        }

        public void setStem(int stem)
        {
                stemNode.setValue(stem);
        }

        public void setFlags(int flags)
        {
                flagsNode.setValue(flags);
        }

        public MutableValueNode<Integer> getNoteHeadNode()
        {
                return noteHeadNode;
        }

        public MutableValueNode<Integer> getStemNode()
        {
                return stemNode;
        }

        public MutableValueNode<Integer> getFlagsNode()
        {
                return flagsNode;
        }
}
